package com.qingfeng.coupon.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qingfeng.client.util.Page;
import com.qingfeng.coupon.Do.CouponDetail;
import com.qingfeng.coupon.Vo.CouponCondition;
import org.apache.ibatis.annotations.Param;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qingfeng.coupon.entity.Coupon;

/**
 * @author zhangyuefei
 * @version 1.0
 * @date 2020/5/28 9:44 上午
 */
public interface CouponMapper extends BaseMapper<Coupon> {

    List<CouponDetail> selectByUserId(@Param("userId") Long userId,
                                      @Param("status") Integer status);


    /**
     * 设置优惠券为已过期,同步更新优惠券模版数量
     * @param ids
     * @return
     */
    int expiredByIds(@Param("ids") List<Long> ids);


    /**
     * 分页查询，根据优惠券所有人和优惠券状态查询优惠券
     * @param page
     * @param userId
     * @param condition
     * @return
     */
    IPage<CouponDetail> selectByUserIdAndStatus(Page page, @Param("userId") Long userId,
                                                @Param("condition") CouponCondition condition);


    /**
     * 获取优惠券详情
     * @param id
     * @param userId
     * @return
     */
    CouponDetail selectDetailById(@Param("id") Long id, @Param("userId") Long userId);


    /**
     * 获取指定优惠券模版优惠券领取数量
     * @param templateId
     * @param userId
     * @return
     */
    List<Coupon> selectByTemplateIdAndUserId(@Param("templateId")Long templateId,@Param("userId")Long userId);


    /**
     * 修改优惠券状态
     * @param updatedStatus
     * @param id
     * @return
     */
    int updateStatusById(@Param("updatedStatus")Integer updatedStatus,@Param("id")Long id);




}
